package com.mes.biz.domain;

import com.mes.common.annotation.Excel;
import com.mes.common.core.domain.BaseEntity;
import com.mes.common.utils.log.annotation.FieldRemark;
import com.mes.common.utils.log.annotation.LogField;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;

/**
 * 销售单产品对象 biz_order_product
 * @author hwg
 * @email hwg
 * @date 2023-05-15
 */
@Data
public class BizOrderProduct extends BaseEntity<BizOrderProduct> {
    private static final long serialVersionUID = 1L;

    /**
     * 产品
     */
    @Excel(name = "产品")
    @NotBlank(message = "产品不允许为空")
    @LogField
    @FieldRemark(name = "产品", field = "productId")
    private String productId;

    /**
     * 销售单
     */
    @Excel(name = "销售单")
    @NotBlank(message = "销售单不允许为空")
    @LogField
    @FieldRemark(name = "销售单", field = "orderId")
    private String orderId;

    /**
     * 数量
     */
    @Excel(name = "数量")
    @LogField
    @FieldRemark(name = "数量", field = "number")
    private BigDecimal number;

    /**
     * 单价
     */
    @Excel(name = "单价")
    @LogField
    @FieldRemark(name = "单价", field = "price")
    private BigDecimal price;

    /**
     * 单位
     */
    @Excel(name = "单位")
    @LogField
    @FieldRemark(name = "单位", field = "unit")
    private String unit;

    /**
     * 金额
     */
    @Excel(name = "金额")
    @LogField
    @FieldRemark(name = "金额", field = "amount")
    private BigDecimal amount;

    /**
     * 租户id
     */
    @Excel(name = "租户id")
    @NotBlank(message = "租户id不允许为空")
    @LogField
    @FieldRemark(name = "租户id", field = "tenantId")
    private String tenantId;

    @LogField
    @FieldRemark(name = "工序状态 0-未完成 1-已完成", field = "operationStatus")
    private String operationStatus;

    @FieldRemark(name = "产品编号", field = "productCode")
    private String productCode;

    @FieldRemark(name = "型号", field = "model")
    private String model;

    @FieldRemark(name = "品牌", field = "brand")
    private String brand;

    @FieldRemark(name = "颜色", field = "color")
    private String color;

    @FieldRemark(name = "规格", field = "spec")
    private String spec;

    private String unitA;
    private String unitB;
    private String unitC;

    private BizProduct bizProduct;

    private String planId;
    private String planName;

    private BigDecimal coefficient;
    private String area;
    private String address;
    private int sort;

    private List<BizProductionProcess> bizProductionProcessList;

    private List<BizOrderProcessRecord> recordList;

    private String unitName;

    private BigDecimal cost1;
    private BigDecimal cost2;
    private BigDecimal cost3;
    private BigDecimal cost4;
    private BigDecimal cost5;
    private BigDecimal cost6;
    private BigDecimal cost7;
    private BigDecimal cost8;
    private BigDecimal cost9;
    private BigDecimal cost10;
}
